iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0
AI Engineering

用 React x Dify 打造 AI 智慧用藥監測系統系列 第 27 篇

DAY27 注入靈魂的互動體驗:使用 Confetti 實作達成目標的慶祝動畫

  • 分享至 

  • xImage
  •  

一個優秀的健康追蹤應用程式,除了功能要穩定,更重要的是要能提供「正向回饋」,鼓勵使用者持續保持好習慣。我們的系統已經具備了完整的進度條計算,但當使用者辛苦吃完今天所有的藥物,進度條達到 100% 時,如果只是數字改變,總覺得少了一點成就感。

今天,我們要在系統中加入「遊戲化 (Gamification)」的元素。我們將引入 canvas-confetti 這個超輕量的動畫套件,當用藥進度達到 100% 時,在畫面上撒下慶祝的五彩紙片!

Step 1:安裝 canvas-confetti 套件
請在終端機中輸入以下指令安裝套件:
npm install canvas-confetti

Step 2:改造進度條元件
打開負責顯示進度條的元件 src/components/MedicationProgress.jsx。我們要利用 React 的 useEffect 來監聽「已服用數量」的變化,一旦達標就觸發紙片動畫。
https://ithelp.ithome.com.tw/upload/images/20260912/20178797HQ8stGXfLg.jpg
https://ithelp.ithome.com.tw/upload/images/20260912/20178797C7J2gfEKA1.jpg

成果就會看到有紙片動畫且加入藥也有相對動畫
https://ithelp.ithome.com.tw/upload/images/20260912/20178797hglVmhECO1.jpg
https://ithelp.ithome.com.tw/upload/images/20260912/20178797bAJKHhdIAl.jpg

這次升級的 UX 巧思
1.無縫整合 React 生命週期:透過 useEffect 陣列中的 [taken, total] 依賴項,系統只會在使用者的操作改變了這兩個數值時,才去判斷是否該觸發動畫,避免不必要的重新渲染。
2.客製化品牌色調:原生的紙片顏色很雜亂,我們透過 colors 屬性,傳入與 Tailwind 專案相符的靛青 (Indigo) 與天藍 (Sky) 色系色碼,讓動畫不會破壞整體的專業質感。
3.防呆機制:加入了 total > 0 的判斷,確保在使用者把藥物清空時(0/0 狀態),不會莫名其妙觸發慶祝動畫。


上一篇
DAY26 醫療系統的第一道防線:表單防呆與資料驗證 (Form Validation)
系列文
用 React x Dify 打造 AI 智慧用藥監測系統 共 27 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言